import { get, post, put, del } from './axios'
import type { ApiResponse, PageQuery } from '../model/common-model'
import type { 
  Server, 
  ServerCreateRequest, 
  ServerUpdateRequest 
} from '../model/server-model'

/**
 * 获取服务器列表（分页）
 * 支持分页和筛选
 */
export function getServerList(params: PageQuery & {
  ip?: string               // IP地址（支持模糊查询）
  hostname?: string         // 主机名（支持模糊查询）
  product_line?: string     // 产品线（支持模糊查询）
  server_type?: string      // 服务器类型筛选（精确匹配）
  server_status?: string    // 服务器状态筛选（精确匹配）
  usage_status?: string     // 使用状态筛选（精确匹配）
  sn?: string               // 序列号（支持模糊查询）
}): Promise<ApiResponse<Server[]>> {
  return get('/servers/', params)
}

/**
 * 获取服务器详情
 * 返回指定ID的服务器详情信息
 */
export function getServer(id: number): Promise<ApiResponse<Server>> {
  return get(`/servers/${id}`)
}

/**
 * 创建服务器
 */
export function createServer(data: ServerCreateRequest): Promise<ApiResponse<Server>> {
  return post('/servers/', data)
}

/**
 * 更新服务器信息
 * 只需提供需要更新的字段，未提供的字段保持原值
 */
export function updateServer(id: number, data: ServerUpdateRequest): Promise<ApiResponse<Server>> {
  return put(`/servers/${id}`, data)
}

/**
 * 删除服务器
 * 删除指定ID的服务器记录
 */
export function deleteServer(id: number): Promise<ApiResponse<{success: boolean}>> {
  return del(`/servers/${id}`)
}
